---@diagnostic disable: lowercase-global, undefined-global, trailing-space

---@type data_keyhandler[]
local data = {
    {
        namespace = "avatar_pono",
        skillid = "change",
        type = "down",
        key = "KEY_Z",
        skill_template_type = "normal_with_CD",
        skill_template_normal_with_CD = {
            cd = 0.5,  -- 0.5秒冷却防止误触
        },
        avatar = {"pono"},
        fn = function(inst)
            -- 检查能量系统
            local energy_comp = inst.components.mod_pono_energy
            if not energy_comp then 
                return 
            end
            
            -- 【修复】禁止在睡眠状态下切换加速模式
            -- 检查是否正在睡觉（帐篷、bedroll等）
            if inst.sg and inst.sg:HasStateTag("sleeping") then
                print("[PonoSpeed] Cannot toggle speed mode while sleeping")
                return
            end
            
            -- 【修复】禁止在昏迷状态下切换加速模式
            if inst.components.mod_pono_grogginess and inst.components.mod_pono_grogginess:IsKnockedOut() then
                print("[PonoSpeed] Cannot toggle speed mode while knocked out")
                return
            end
            
            local current_energy = energy_comp:GetVal()
            
            -- 只在能量25-175之间才能切换形态
            if current_energy < 25 or current_energy > 175 then
                -- 可以添加提示音效或文字提示
                if inst.SoundEmitter then
                    inst.SoundEmitter:PlaySound("dontstarve/common/destroy_wood")  -- 错误音效
                end
                return
            end
            
            -- 切换快速移动模式状态（基于标签而不是变量）
            local is_currently_speed_mode = inst:HasTag("pono_speed_mode")
            
            if not is_currently_speed_mode then
                -- 进入快速移动模式
                inst:AddTag("pono_speed_mode")
                
                -- 播放变身音效
                if inst.SoundEmitter then
                    inst.SoundEmitter:PlaySound("dontstarve/characters/wortox/soul/soul_spawn")
                end
                
                -- 显示提示文字
                if inst.components.talker then
                    inst.components.talker:Say("加速喵！")
                end
            else
                -- 退出快速移动模式
                inst:RemoveTag("pono_speed_mode")
                
                -- 播放变身结束音效
                if inst.SoundEmitter then
                    inst.SoundEmitter:PlaySound("dontstarve/characters/wortox/soul/soul_dissipate")
                end
                
                -- 显示提示文字
                if inst.components.talker then
                    inst.components.talker:Say("正常喵")
                end
            end
            


            -- 更新移速和工作效率（直接触发能量变化事件）
            if inst.components.mod_pono_energy then
                -- 触发能量变化事件来更新所有效果
                inst:PushEvent("mod_pono_energy_val_change")
            end
        end,
    }

}


return data